﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Win32;
using Microsoft.Pex.Framework;
using Microsoft.Pex.Graphs;
using Microsoft.Pex.Framework.Validation;
using System.Collections;

namespace MSCorLibEval
{
    [PexClass(typeof(ArrayList))]
    public partial class ArrayListTest_Pex
    {
        [PexMethod]
        public void TestAdd_PexDefault([PexAssumeUnderTest]ArrayList arrObj, [PexAssumeUnderTest]Object obj)
        {
            arrObj.Add(obj);
        }

        [PexMethod]
        public void TestAdd_MSeqGen1([PexAssumeUnderTest]String str, [PexAssumeUnderTest]Object obj)
        {
            ArrayList arrObj = new ArrayList();
            if (!arrObj.Contains(str))
                arrObj.Add(str);
            
            arrObj.Add(obj);
        }

        [PexMethod]
        public void TestAdd_MSeqGen2([PexAssumeUnderTest]String str, [PexAssumeUnderTest]Object obj)
        {
            ArrayList arrObj = new ArrayList();
            if (!arrObj.Contains(str))
                arrObj.Add(str);


            ArrayList arrObjNew = (ArrayList) arrObj.Clone();
            arrObjNew.Add(obj);
        }

        [PexMethod]
        public void TestRemove_PexDefault([PexAssumeUnderTest]ArrayList arrObj, [PexAssumeUnderTest]Object obj)
        {
            arrObj.Remove(obj);
        }


    }
}
